From 34c674d503e23c0cf6d0b6dec063f3049885e5f8 Mon Sep 17 00:00:00 2001 From: 朱桂飞 <zhuguifei@zhuguifeideMacBook-Air.local> Date: 星期一, 10 二月 2025 13:17:10 +0800 Subject: [PATCH] 新增盘点明细 --- eims-ui/apps/web-antd/src/views/eims/inventory-detail/index.vue | 98 ++++++++++++++++++++++++++++++++----------------- 1 files changed, 64 insertions(+), 34 deletions(-) diff --git a/eims-ui/apps/web-antd/src/views/eims/inventory-detail/index.vue b/eims-ui/apps/web-antd/src/views/eims/inventory-detail/index.vue index 85ce23f..d8fdaae 100644 --- a/eims-ui/apps/web-antd/src/views/eims/inventory-detail/index.vue +++ b/eims-ui/apps/web-antd/src/views/eims/inventory-detail/index.vue @@ -1,9 +1,10 @@ <script setup lang="ts"> import type { Recordable } from '@vben/types'; -import { ref } from 'vue'; -import { useRoute, useRouter } from 'vue-router'; +import { computed, nextTick, ref } from 'vue'; +import { useRoute } from 'vue-router'; +import { useAccess } from '@vben/access'; import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui'; import { $t } from '@vben/locales'; import { getVxePopupContainer } from '@vben/utils'; @@ -15,7 +16,7 @@ import { commonDownloadExcel } from '#/utils/file/download'; import { columns, querySchema } from './data'; -import equDrawer from './equ-drawer.vue'; +import detailDrawer from './detail-drawer.vue'; import EquTypeTree from './equ-type-tree.vue'; const route = useRoute(); @@ -23,6 +24,12 @@ // 宸﹁竟閮ㄩ棬鐢� const selectTypeId = ref<string[]>([]); +// 宸茬洏鐐� +const check = ref<string>('宸茬洏'); +// 鏈洏鐐� +const noCheck = ref<string>('鏈洏'); +// 鏌ヨ娣诲姞鐩樼偣鏍囪杩囨护 +const checkFilter = ref<string>(); const formOptions: VbenFormProps = { commonConfig: { @@ -35,6 +42,7 @@ wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', handleReset: async () => { selectTypeId.value = []; + checkFilter.value = undefined; // eslint-disable-next-line no-use-before-define const { formApi, reload } = tableApi; await formApi.resetForm(); @@ -58,7 +66,12 @@ columns, height: 'auto', keepSource: true, - pagerConfig: {}, + pagerConfig: { + // 榛樿鏉℃暟 + pageSize: 1000, + // 鍒嗛〉鍙�夋潯鏁� + pageSizes: [1000, 2000, 3000, 4000, 5000] + }, proxyConfig: { ajax: { query: async ({ page }, formValues = {}) => { @@ -68,10 +81,36 @@ } else { Reflect.deleteProperty(formValues, 'equTypeId'); } + // 鏄惁鐩樼偣 + if (checkFilter.value === '0' || checkFilter.value === '1') { + formValues.status = checkFilter.value; + } else { + Reflect.deleteProperty(formValues, 'status'); + } return await listInventoryDetail({ pageNum: page.currentPage, pageSize: page.pageSize, + inventoryId, ...formValues + }); + }, + querySuccess: () => { + nextTick(() => { + // 杩囨护宸茬洏鍜屾湭鐩樼殑鏁版嵁 + // eslint-disable-next-line no-use-before-define + const data = tableApi.grid.getData(); + const data0 = data.filter((item) => { + return item.status === '' || item.status === null || item.status === '0'; + }); + if (data0 !== null && data0.length > 0) { + noCheck.value = `鏈洏(${data0.length})`; + } + const data1 = data.filter((item) => { + return item.status !== '' && item.status !== null && item.status === '1'; + }); + if (data1 !== null && data1.length > 0) { + check.value = `宸茬洏(${data1.length})`; + } }); } } @@ -97,18 +136,13 @@ } }); -const [EquDrawer, equDrawerApi] = useVbenDrawer({ - connectedComponent: equDrawer +const [DetailDrawer, detailDrawerApi] = useVbenDrawer({ + connectedComponent: detailDrawer }); -function handleAdd() { - equDrawerApi.setData({}); - equDrawerApi.open(); -} - async function handleEdit(record: Recordable<any>) { - equDrawerApi.setData({ id: record.equId }); - equDrawerApi.open(); + detailDrawerApi.setData({ id: record.id }); + detailDrawerApi.open(); } async function handleDelete(row: Recordable<any>) { @@ -129,7 +163,6 @@ } }); } - function handleDownloadExcel() { commonDownloadExcel(inventoryDetailExport, '鐩樼偣鏄庣粏', tableApi.formApi.form.values, { fieldMappingTime: formOptions.fieldMappingTime @@ -145,11 +178,12 @@ const inventoryFlag = row.inventoryFlag === null || row.inventoryFlag; return inventoryFlag ? '鏈洏鐐�' : '宸茬洏鐐�'; } - -const router = useRouter(); -function handleDetail(record: Recordable<any>) { - router.push(`/equ/detail/${record.id}`); +function handleQuery(isChecked: string) { + checkFilter.value = isChecked; + tableApi.query(); } +const { hasAccessByRoles } = useAccess(); +const isSuperAdmin = computed(() => hasAccessByRoles(['superadmin'])); </script> <template> @@ -159,34 +193,30 @@ <BasicTable class="flex-1 overflow-hidden" table-title="鐩樼偣鏄庣粏鍒楄〃"> <template #toolbar-tools> <Space> + <a-button @click="handleQuery('0')">{{ noCheck }}</a-button> + <a-button type="primary" @click="handleQuery('1')"> {{ check }}</a-button> <a-button v-access:code="['eims:inventory:export']" @click="handleDownloadExcel"> {{ $t('pages.common.export') }} </a-button> - <a-button :disabled="!vxeCheckboxChecked(tableApi)" danger type="primary" v-access:code="['eims:inventory:remove']" @click="handleMultiDelete"> + <a-button + :disabled="!vxeCheckboxChecked(tableApi) || !isSuperAdmin" + danger + type="primary" + v-access:code="['eims:inventory:remove']" + @click="handleMultiDelete" + > {{ $t('pages.common.delete') }} </a-button> - <a-button type="primary" v-access:code="['eims:inventory:add']" @click="handleAdd"> - {{ $t('pages.common.add') }} - </a-button> - </Space> - </template> - - <template #equName="{ row }"> - <Space> - <a-button type="link" @click="handleDetail(row)"> {{ row.equName }}</a-button> </Space> </template> <template #action="{ row }"> <Space> - <ghost-button v-access:code="['eims:inventory:edit']" @click.stop="handleEdit(row)"> + <ghost-button :disabled="!isSuperAdmin" v-access:code="['eims:inventory:edit']" @click.stop="handleEdit(row)"> {{ $t('pages.common.edit') }} </ghost-button> - <ghost-button v-if="row.menuType !== 'F'" class="btn-success" v-access:code="['eims:inventory:list']" @click="handleDetail(row)"> - {{ $t('pages.common.info') }} - </ghost-button> <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)"> - <ghost-button danger v-access:code="['eims:inventory:remove']" @click.stop=""> + <ghost-button :disabled="!isSuperAdmin" danger v-access:code="['eims:inventory:remove']" @click.stop=""> {{ $t('pages.common.delete') }} </ghost-button> </Popconfirm> @@ -202,6 +232,6 @@ </template> </BasicTable> </div> - <EquDrawer @reload="tableApi.query()" /> + <DetailDrawer @reload="tableApi.query()" /> </Page> </template> -- Gitblit v1.9.3