From 88c13135d045d43657fd62d4cc66ca6b390f276c Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期一, 16 六月 2025 09:51:17 +0800
Subject: [PATCH] style(eims-ui-mobile): 优化多个页面的样式布局
---
eims-ui/apps/web-antd/src/views/eims/fixture/index.vue | 99 ++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 84 insertions(+), 15 deletions(-)
diff --git a/eims-ui/apps/web-antd/src/views/eims/fixture/index.vue b/eims-ui/apps/web-antd/src/views/eims/fixture/index.vue
index 76e3dde..81a789f 100644
--- a/eims-ui/apps/web-antd/src/views/eims/fixture/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/fixture/index.vue
@@ -1,11 +1,12 @@
<script setup lang="ts">
import type { Recordable } from '@vben/types';
-import { onMounted, ref } from 'vue';
-import { useRouter } from 'vue-router';
+import { computed, onMounted, ref } from 'vue';
+import { useAccess } from '@vben/access';
import { Page, useVbenDrawer, useVbenModal, 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';
@@ -14,14 +15,22 @@
import { delFixture, fixtureExport, listFixture } from '#/api/eims/fixture';
import { getDeptTree, userList } from '#/api/system/user';
import { commonDownloadExcel } from '#/utils/file/download';
+import fixtureBorrowDrawer from '#/views/eims/fixture-borrow/fixture-borrow-drawer.vue';
import { columns, querySchema } from './data';
+import fixtureBorrowListDrawer from './fixture-borrow-list-drawer.vue';
import fixtureDrawer from './fixture-drawer.vue';
import fixtureImportModal from './fixture-import-modal.vue';
import FixtureTypeTree from './fixture-type-tree.vue';
+const userStore = useUserStore();
+const userId = userStore.userInfo?.userId;
+
// 宸﹁竟宸ュ叿绫诲瀷
const selectTypeId = ref<string[]>([]);
+defineExpose({
+ tableSelect
+});
const formOptions: VbenFormProps = {
commonConfig: {
@@ -96,12 +105,24 @@
formOptions,
gridOptions,
gridEvents: {
- sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams)
+ sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams),
+ cellClick: (e: any) => {
+ const { row } = e;
+ // handleBorroeList(row);
+ }
}
});
const [FixtureDrawer, fixtureDrawerApi] = useVbenDrawer({
connectedComponent: fixtureDrawer
+});
+const [FixtureBorrowListDrawer, fixtureBorrowListDrawerApi] = useVbenDrawer({
+ connectedComponent: fixtureBorrowListDrawer,
+ placement: 'left'
+});
+
+const [FixtureBorrowDrawer, fixtureBorrowDrawerApi] = useVbenDrawer({
+ connectedComponent: fixtureBorrowDrawer
});
/**
@@ -118,6 +139,11 @@
function handleAdd() {
fixtureDrawerApi.setData({});
fixtureDrawerApi.open();
+}
+
+async function handleBorroeList(record: Recordable<any>) {
+ fixtureBorrowListDrawerApi.setData({ fixtureId: record.id });
+ fixtureBorrowListDrawerApi.open();
}
async function handleEdit(record: Recordable<any>) {
@@ -143,17 +169,29 @@
}
});
}
-
+function handleBorrow(row: Recordable<any>, status: string) {
+ if (userId === null || userId === undefined || userId === '') {
+ Modal.error({
+ content: '鑾峰彇鐢ㄦ埛淇℃伅澶辫触锛岃閲嶆柊鐧诲綍鍚庨噸璇曪紒',
+ title: '鎻愮ず'
+ });
+ return false;
+ }
+ // 宸ュ叿鍙拌处鍊熺敤鐘舵�乀ODO fixture_borrow_status 0-绌洪棽 1-鍊熷嚭
+ if (status === '0') {
+ // 绌洪棽鏃跺�熷嚭锛屾柊澧炰竴鏉″�熷嚭鏁版嵁
+ fixtureBorrowDrawerApi.setData({ status, borrowUser: userId, fixtureId: row.id, fixtureName: row.fixtureName, fixturePage: true });
+ fixtureBorrowDrawerApi.open();
+ } else if (status === '1') {
+ // 鍊熷嚭鏃跺綊杩橈紝鏇存柊鍊熷嚭鏁版嵁
+ fixtureBorrowDrawerApi.setData({ id: row.curBorrowId });
+ fixtureBorrowDrawerApi.open();
+ }
+}
function handleDownloadExcel() {
commonDownloadExcel(fixtureExport, '宸ュ叿鍙拌处', tableApi.formApi.form.values, {
fieldMappingTime: formOptions.fieldMappingTime
});
-}
-
-const router = useRouter();
-
-function handleDetail(record: Recordable<any>) {
- router.push(`/fixture/detail/${record.id}`);
}
/**
@@ -226,6 +264,30 @@
onMounted(async () => {
await setupDeptSelect();
});
+
+const { hasAccessByRoles } = useAccess();
+const isSuperAdmin = computed(() => hasAccessByRoles(['superadmin']));
+/**
+ * 鍙湁鍊熺敤鐢ㄦ埛鍜岀鐞嗗憳鍙互鐐瑰嚮褰掕繕
+ */
+function isBorrowUser(row: any) {
+ return isSuperAdmin.value || row?.borrowUser === userId;
+}
+
+function isBorrow(row: any) {
+ // TODO 瀵瑰簲瀛楀吀鐘舵�乫ixture_borrow_status 0-绌洪棽 1-鍊熷嚭
+ return row.borrowStatus === '0' || row.borrowStatus === null;
+}
+
+function isReturn(row: any) {
+ // TODO 瀵瑰簲瀛楀吀鐘舵�乫ixture_borrow_status 0-绌洪棽 1-鍊熷嚭
+ return row.borrowStatus === '1';
+}
+
+// 閫変腑鏁版嵁
+function tableSelect() {
+ return tableApi.grid.getCheckboxRecords();
+}
</script>
<template>
@@ -238,7 +300,7 @@
<a-button v-access:code="['eims:fixture:export']" @click="handleDownloadExcel">
{{ $t('pages.common.export') }}
</a-button>
- <a-button v-access:code="['eims:fixture:import']" @click="handleImport">
+ <a-button v-access:code="['eims:fixture:import']" @click="handleImport">
{{ $t('pages.common.import') }}
</a-button>
<a-button
@@ -256,9 +318,9 @@
</Space>
</template>
- <template #equName="{ row }">
+ <template #fixtureName="{ row }">
<Space>
- <a-button type="link" @click="handleDetail(row)"> {{ row.equName }}</a-button>
+ <a-button type="link" @click="handleBorroeList(row)"> {{ row.fixtureName }}</a-button>
</Space>
</template>
@@ -267,8 +329,11 @@
<ghost-button v-access:code="['eims:fixture: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:fixture:list']" @click="handleDetail(row)">
- {{ $t('pages.common.info') }}
+ <ghost-button v-if="isBorrow(row)" class="btn-success" v-access:code="['eims:fixture:borrow']" @click="handleBorrow(row, '0')">
+ 鍊熺敤
+ </ghost-button>
+ <ghost-button v-else-if="isReturn(row) && isBorrowUser(row)" v-access:code="['eims:fixture:borrow']" @click="handleBorrow(row, '1')">
+ 褰掕繕
</ghost-button>
<Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="纭鍒犻櫎锛�" @confirm="handleDelete(row)">
<ghost-button danger v-access:code="['eims:fixture:remove']" @click.stop="">
@@ -280,6 +345,10 @@
</BasicTable>
</div>
<FixtureDrawer @reload="tableApi.query()" />
+ <!--宸ュ叿鍊熷嚭褰掕繕鎿嶄綔-->
+ <FixtureBorrowDrawer @reload="tableApi.query()" />
+ <!--鏌ョ湅宸ュ叿鍊熷嚭褰掕繕璁板綍-->
+ <FixtureBorrowListDrawer />
<FixtureImportModal @reload="tableApi.query()" />
</Page>
</template>
--
Gitblit v1.9.3