From ab59bcf89f3996d4da73402dd362b2a5d865735e Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期二, 08 四月 2025 08:17:53 +0800
Subject: [PATCH] 备份数据库
---
eims-ui/apps/web-antd/src/views/eims/repair-res/index.vue | 96 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 88 insertions(+), 8 deletions(-)
diff --git a/eims-ui/apps/web-antd/src/views/eims/repair-res/index.vue b/eims-ui/apps/web-antd/src/views/eims/repair-res/index.vue
index d4f5852..226fdcf 100644
--- a/eims-ui/apps/web-antd/src/views/eims/repair-res/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/repair-res/index.vue
@@ -1,22 +1,29 @@
<script setup lang="ts">
import type { Recordable } from '@vben/types';
-import { onMounted } from 'vue';
+import { computed, onMounted, ref } from 'vue';
+import { useAccess } from '@vben/access';
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 { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table';
+import { listRepairRecord } from '#/api/eims/repair-record';
import { delRepairRes, listRepairRes, repairResExport } from '#/api/eims/repair-res';
import { getDeptTree, userList } from '#/api/system/user';
+import { REPAIR_RES_STATUS } from '#/constants/dict';
import { commonDownloadExcel } from '#/utils/file/download';
+import BasisSubTable from '#/views/eims/components/basis-sub-table.vue';
+import fbPreviewDrawer from '../repair-fb/fb-preview-drawer.vue';
+import repairFbDrawer from '../repair-fb/repair-fb-drawer.vue';
+import { columns as repairRecordCol } from '../repair-record/data';
import { columns, querySchema } from './data';
import repairResDrawer from './repair-res-drawer.vue';
-import { useUserStore } from '@vben/stores';
const userStore = useUserStore();
const userId = userStore.userInfo?.userId;
@@ -74,17 +81,40 @@
id: 'eims-repair-res-index'
};
+const resId = 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;
+ resId.value = row.id;
+ }
}
});
const [RepairResDrawer, repairResDrawerApi] = useVbenDrawer({
connectedComponent: repairResDrawer
});
+
+const [RepairFbDrawer, repairFbDrawerApi] = useVbenDrawer({
+ connectedComponent: repairFbDrawer
+});
+
+const [FbPreviewDrawer, fbPreviewDrawerApi] = useVbenDrawer({
+ connectedComponent: fbPreviewDrawer
+});
+
+function handleAddFb(record: Recordable<any>) {
+ repairFbDrawerApi.setData({ resId: record.id, resCode: record.resCode, fbUser: userId, fbDept: deptId });
+ repairFbDrawerApi.open();
+}
+
+function handleDetailFb(record: Recordable<any>) {
+ fbPreviewDrawerApi.setData({ id: record.fbId });
+ fbPreviewDrawerApi.open();
+}
function handleAdd() {
repairResDrawerApi.setData({ resUser: userId, resDept: deptId });
@@ -94,6 +124,31 @@
async function handleEdit(record: Recordable<any>) {
repairResDrawerApi.setData({ id: record.id });
repairResDrawerApi.open();
+}
+
+async function handleEditStatus(record: Recordable<any>, status: string) {
+ repairResDrawerApi.setData({ id: record.id, action: status, status });
+ repairResDrawerApi.open();
+}
+
+const { hasAccessByRoles } = useAccess();
+const isSuperAdmin = computed(() => hasAccessByRoles(['superadmin']));
+const isLeader = computed(() => hasAccessByRoles(['leader']));
+
+function pingjiaAdd(row: any) {
+ return (isSuperAdmin.value || isLeader.value || row.reqUser === userId) && row.status === REPAIR_RES_STATUS.WANCHENG && !row.fbId;
+}
+
+function pingjiaDetail(row: any) {
+ return (isSuperAdmin.value || isLeader.value || row.reqUser === userId) && row.status === REPAIR_RES_STATUS.WANCHENG && row.fbId;
+}
+
+function weixiu(row: any) {
+ return (isSuperAdmin.value || isLeader.value || row.resUser === userId) && row.status === REPAIR_RES_STATUS.YIJIEDAN;
+}
+
+function wancheng(row: any) {
+ return (isSuperAdmin.value || isLeader.value || row.resUser === userId) && row.status === REPAIR_RES_STATUS.WEIXIU;
}
async function handleDelete(row: Recordable<any>) {
@@ -195,8 +250,8 @@
<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:repairRes:export']" @click="handleDownloadExcel">
@@ -211,14 +266,36 @@
>
{{ $t('pages.common.delete') }}
</a-button>
- <a-button type="primary" v-access:code="['eims:repairRes:add']" @click="handleAdd">
- {{ $t('pages.common.add') }}
- </a-button>
+ <a-button type="primary" v-access:code="['eims:repairRes:add']" @click="handleAdd"> 鎺ュ崟</a-button>
</Space>
</template>
<template #action="{ row }">
<Space>
+ <ghost-button v-if="pingjiaAdd(row)" class="btn-success" v-access:code="['eims:repairRes:edit']" @click.stop="handleAddFb(row)">
+ 璇勪环
+ </ghost-button>
+ <ghost-button v-if="pingjiaDetail(row)" class="btn-success" v-access:code="['eims:repairRes:edit']" @click.stop="handleDetailFb(row)">
+ 闃呰瘎
+ </ghost-button>
+ <ghost-button
+ v-if="weixiu(row)"
+ class="btn-success"
+ v-access:code="['eims:repairRes:edit']"
+ @click.stop="handleEditStatus(row, REPAIR_RES_STATUS.WEIXIU)"
+ >
+ 缁翠慨
+ </ghost-button>
+
+ <ghost-button
+ v-if="wancheng(row)"
+ class="btn-success"
+ v-access:code="['eims:repairRes:edit']"
+ @click.stop="handleEditStatus(row, REPAIR_RES_STATUS.WANCHENG)"
+ >
+ 瀹屾垚
+ </ghost-button>
+
<ghost-button v-access:code="['eims:repairRes:edit']" @click.stop="handleEdit(row)">
{{ $t('pages.common.edit') }}
</ghost-button>
@@ -230,7 +307,10 @@
</Space>
</template>
</BasicTable>
+ <BasisSubTable :columns="repairRecordCol" :list-api="listRepairRecord" :req-value="resId" class="h-1/3" req-key="resId" title="鎿嶄綔璁板綍" />
</div>
<RepairResDrawer @reload="tableApi.query()" />
+ <RepairFbDrawer @reload="tableApi.query()" />
+ <FbPreviewDrawer />
</Page>
</template>
--
Gitblit v1.9.3