refactor: ♻️ 抽屉适配移动端自适应调整宽度

This commit is contained in:
Ray.Hao
2025-03-24 23:19:35 +08:00
parent 0d51da3819
commit 2f2c3d6b84
3 changed files with 33 additions and 7 deletions

View File

@@ -112,7 +112,12 @@
</el-table> </el-table>
</el-card> </el-card>
<el-drawer v-model="dialog.visible" :title="dialog.title" size="50%" @close="handleCloseDialog"> <el-drawer
v-model="dialog.visible"
:title="dialog.title"
:size="drawerSize"
@close="handleCloseDialog"
>
<el-form ref="menuFormRef" :model="formData" :rules="rules" label-width="100px"> <el-form ref="menuFormRef" :model="formData" :rules="rules" label-width="100px">
<el-form-item label="父级菜单" prop="parentId"> <el-form-item label="父级菜单" prop="parentId">
<el-tree-select <el-tree-select
@@ -330,13 +335,18 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useAppStore } from "@/store/modules/app.store";
import { DeviceEnum } from "@/enums/settings/device.enum";
import MenuAPI, { MenuQuery, MenuForm, MenuVO } from "@/api/system/menu.api";
import { MenuTypeEnum } from "@/enums/system/menu.enum";
defineOptions({ defineOptions({
name: "SysMenu", name: "SysMenu",
inheritAttrs: false, inheritAttrs: false,
}); });
import MenuAPI, { MenuQuery, MenuForm, MenuVO } from "@/api/system/menu.api"; const appStore = useAppStore();
import { MenuTypeEnum } from "@/enums/system/menu.enum";
const queryFormRef = ref(); const queryFormRef = ref();
const menuFormRef = ref(); const menuFormRef = ref();
@@ -347,6 +357,7 @@ const dialog = reactive({
visible: false, visible: false,
}); });
const drawerSize = computed(() => (appStore.device === DeviceEnum.DESKTOP ? "600px" : "90%"));
// 查询参数 // 查询参数
const queryParams = reactive<MenuQuery>({}); const queryParams = reactive<MenuQuery>({});
// 菜单表格数据 // 菜单表格数据

View File

@@ -143,7 +143,7 @@
<el-drawer <el-drawer
v-model="assignPermDialogVisible" v-model="assignPermDialogVisible"
:title="'【' + checkedRole.name + '】权限分配'" :title="'【' + checkedRole.name + '】权限分配'"
size="500" :size="drawerSize"
> >
<div class="flex-x-between"> <div class="flex-x-between">
<el-input v-model="permKeywords" clearable class="w-[150px]" placeholder="菜单权限名称"> <el-input v-model="permKeywords" clearable class="w-[150px]" placeholder="菜单权限名称">
@@ -203,13 +203,18 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useAppStore } from "@/store/modules/app.store";
import { DeviceEnum } from "@/enums/settings/device.enum";
import RoleAPI, { RolePageVO, RoleForm, RolePageQuery } from "@/api/system/role.api";
import MenuAPI from "@/api/system/menu.api";
defineOptions({ defineOptions({
name: "Role", name: "Role",
inheritAttrs: false, inheritAttrs: false,
}); });
import RoleAPI, { RolePageVO, RoleForm, RolePageQuery } from "@/api/system/role.api"; const appStore = useAppStore();
import MenuAPI from "@/api/system/menu.api";
const queryFormRef = ref(); const queryFormRef = ref();
const roleFormRef = ref(); const roleFormRef = ref();
@@ -234,6 +239,9 @@ const dialog = reactive({
title: "", title: "",
visible: false, visible: false,
}); });
const drawerSize = computed(() => (appStore.device === DeviceEnum.DESKTOP ? "600px" : "90%"));
// 角色表单 // 角色表单
const formData = reactive<RoleForm>({ const formData = reactive<RoleForm>({
sort: 1, sort: 1,

View File

@@ -162,6 +162,7 @@
v-model="dialog.visible" v-model="dialog.visible"
:title="dialog.title" :title="dialog.title"
append-to-body append-to-body
:size="drawerSize"
@close="handleCloseDialog" @close="handleCloseDialog"
> >
<el-form ref="userFormRef" :model="formData" :rules="rules" label-width="80px"> <el-form ref="userFormRef" :model="formData" :rules="rules" label-width="80px">
@@ -237,8 +238,10 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import UserAPI, { UserForm, UserPageQuery, UserPageVO } from "@/api/system/user.api"; import { useAppStore } from "@/store/modules/app.store";
import { DeviceEnum } from "@/enums/settings/device.enum";
import UserAPI, { UserForm, UserPageQuery, UserPageVO } from "@/api/system/user.api";
import DeptAPI from "@/api/system/dept.api"; import DeptAPI from "@/api/system/dept.api";
import RoleAPI from "@/api/system/role.api"; import RoleAPI from "@/api/system/role.api";
@@ -249,6 +252,9 @@ defineOptions({
name: "User", name: "User",
inheritAttrs: false, inheritAttrs: false,
}); });
const appStore = useAppStore();
const queryFormRef = ref(); const queryFormRef = ref();
const userFormRef = ref(); const userFormRef = ref();
@@ -265,6 +271,7 @@ const dialog = reactive({
visible: false, visible: false,
title: "新增用户", title: "新增用户",
}); });
const drawerSize = computed(() => (appStore.device === DeviceEnum.DESKTOP ? "600px" : "90%"));
const formData = reactive<UserForm>({ const formData = reactive<UserForm>({
status: 1, status: 1,