From ec4d16c8a630960a4671a60f4d1957fd3de9def3 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期四, 27 二月 2025 16:53:59 +0800
Subject: [PATCH] 完成维修工单查看维修记录子表
---
eims-ui/apps/web-antd/src/views/eims/inventory-detail/index.vue | 112 +++++++++++++++++++++++++++++++------------------------
1 files changed, 63 insertions(+), 49 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..ed4f20c 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 = '';
// 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,35 @@
} 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 (checkFilter.value === '') {
+ noCheck.value = data0 !== null && data0.length > 0 ? `鏈洏(${data0.length})` : `鏈洏(0)`;
+ const data1 = data.filter((item) => {
+ return item.status !== '' && item.status !== null && item.status === '1';
+ });
+ check.value = data1 !== null && data1.length > 0 ? `宸茬洏(${data1.length})` : `宸茬洏(0)`;
+ }
});
}
}
@@ -97,18 +135,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>) {
@@ -136,20 +169,13 @@
});
}
-function getImportStatus(row: any) {
- const importStatus = row.importStatus === null || row.importStatus;
- return importStatus ? '鏈鍏�' : '宸插鍏�';
+function handleQuery(isChecked: string) {
+ checkFilter.value = isChecked;
+ tableApi.query();
}
-function getInventoryFlag(row: any) {
- const inventoryFlag = row.inventoryFlag === null || row.inventoryFlag;
- return inventoryFlag ? '鏈洏鐐�' : '宸茬洏鐐�';
-}
-
-const router = useRouter();
-function handleDetail(record: Recordable<any>) {
- router.push(`/equ/detail/${record.id}`);
-}
+const { hasAccessByRoles } = useAccess();
+const isSuperAdmin = computed(() => hasAccessByRoles(['superadmin']));
</script>
<template>
@@ -159,49 +185,37 @@
<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>
</Space>
</template>
-
- <template #importStatus="{ row }">
- <span>{{ getImportStatus(row) }}</span>
- </template>
-
- <template #inventoryFlag="{ row }">
- <span>{{ getInventoryFlag(row) }}</span>
- </template>
</BasicTable>
</div>
- <EquDrawer @reload="tableApi.query()" />
+ <DetailDrawer @reload="tableApi.query()" />
</Page>
</template>
--
Gitblit v1.9.3