refactor: 将组件前缀从Art统一替换为Fa

- 更新所有FA前缀的组件文件
- 新增Fa前缀的对应组件
- 更新所有引用路径和组件名
- 修改相关样式和变量名
- 调整部分组件目录结构
This commit is contained in:
zhangtao
2026-05-11 09:23:31 +08:00
parent 68b50359c5
commit 03a8151513
185 changed files with 2912 additions and 1283 deletions
@@ -1,6 +1,6 @@
<!-- 角色授权 -->
<template>
<ArtDrawer
<FaDrawer
v-model="drawerVisible"
:title="'【' + props.roleName + '】权限分配'"
:size="drawerSize"
@@ -143,14 +143,14 @@
<ElButton type="primary" :loading="loading" @click.stop="handleDrawerSave">确 定</ElButton>
</div>
</template>
</ArtDrawer>
</FaDrawer>
</template>
<script setup lang="ts">
import { computed, ref, watch, onMounted } from "vue";
import { QuestionFilled, Switch as SwitchIcon } from "@element-plus/icons-vue";
import type { TreeInstance } from "element-plus";
import ArtDrawer from "@/components/Core/modal/art-drawer/index.vue";
import FaDrawer from "@/components/modal/fa-drawer/index.vue";
import { listToTree, formatTree } from "@utils/common";
import RoleAPI, {
permissionDataType,
@@ -1,7 +1,7 @@
<!-- 角色管理:Art + useTable;操作列最多 3 个外露 +「更多」 -->
<template>
<div class="art-full-height">
<ArtSearchBar
<FaSearchBar
v-show="showSearchBar"
ref="searchBarRef"
v-model="searchForm"
@@ -18,14 +18,14 @@
/>
<ElCard class="art-table-card" :style="{ 'margin-top': showSearchBar ? '12px' : '0' }">
<ArtTableHeader
<FaTableHeader
v-model:columns="columnChecks"
v-model:showSearchBar="showSearchBar"
:loading="loading"
@refresh="refreshData"
>
<template #left>
<ArtTableHeaderLeft
<FaTableHeaderLeft
:remove-ids="selectedIds"
:perm-create="['module_system:role:create']"
:perm-export="['module_system:role:export']"
@@ -38,10 +38,10 @@
@more="handleMoreClick"
/>
</template>
</ArtTableHeader>
</FaTableHeader>
<ArtTable
ref="artTableRef"
<FaTable
ref="FaTableRef"
:loading="loading"
:data="data"
:columns="columns"
@@ -52,7 +52,7 @@
/>
</ElCard>
<ArtDialog
<FaDialog
v-model="dialogVisible.visible"
:title="dialogVisible.title"
width="720px"
@@ -113,7 +113,7 @@
</template>
<template v-else>
<ElScrollbar max-height="75vh" :view-style="{ overflowX: 'hidden' }">
<ArtForm
<FaForm
:key="roleFormRenderKey"
ref="dataFormRef"
v-model="formData"
@@ -134,7 +134,7 @@
<ElRadio value="1">停用</ElRadio>
</ElRadioGroup>
</template>
</ArtForm>
</FaForm>
</ElScrollbar>
</template>
@@ -152,7 +152,7 @@
<ElButton v-else type="primary" @click="handleCloseDialog">确定</ElButton>
</div>
</template>
</ArtDialog>
</FaDialog>
<PermissonDrawer
v-if="drawerVisible"
@@ -162,7 +162,7 @@
@saved="refreshData"
/>
<ArtExportDialog
<FaExportDialog
v-model="exportModalVisible"
:content-config="roleExportContentConfig"
:query-params="exportQueryParams"
@@ -175,17 +175,17 @@
<script setup lang="ts">
import { h, computed, ref, reactive } from "vue";
import { useTable } from "@/hooks/core/useTable";
import ArtTable from "@/components/Core/tables/art-table/index.vue";
import ArtTableHeader from "@/components/Core/tables/art-table-header/index.vue";
import ArtTableHeaderLeft from "@/components/Core/tables/art-table-header-left/index.vue";
import ArtExportDialog from "@/components/Core/modal/art-export-dialog/index.vue";
import FaTable from "@/components/tables/fa-table/index.vue";
import FaTableHeader from "@/components/tables/fa-table-header/index.vue";
import FaTableHeaderLeft from "@/components/tables/fa-table-header-left/index.vue";
import FaExportDialog from "@/components/modal/fa-export-dialog/index.vue";
import { renderTableOperationCell, type TableOperationAction } from "@utils/table";
import type { IObject } from "@/components/Core/modal/types";
import ArtSearchBar from "@/components/Core/forms/art-search-bar/index.vue";
import type { SearchFormItem } from "@/components/Core/forms/art-search-bar/index.vue";
import ArtDialog from "@/components/Core/modal/art-dialog/index.vue";
import ArtForm from "@/components/Core/forms/art-form/index.vue";
import type { FormItem } from "@/components/Core/forms/art-form/index.vue";
import type { IObject } from "@/components/modal/types";
import FaSearchBar from "@/components/forms/fa-search-bar/index.vue";
import type { SearchFormItem } from "@/components/forms/fa-search-bar/index.vue";
import FaDialog from "@/components/modal/fa-dialog/index.vue";
import FaForm from "@/components/forms/fa-form/index.vue";
import type { FormItem } from "@/components/forms/fa-form/index.vue";
import type { ColumnOption } from "@/types/component";
import RoleAPI, {
type RoleForm,
@@ -345,7 +345,7 @@ const searchForm = ref<RoleSearchForm>({
});
const showSearchBar = ref(true);
const searchBarRef = ref<InstanceType<typeof ArtSearchBar> | null>(null);
const searchBarRef = ref<InstanceType<typeof FaSearchBar> | null>(null);
const searchBarRules: Record<string, unknown> = {};
const statusOptions = ref([
@@ -390,7 +390,7 @@ const roleSearchItems = computed<SearchFormItem[]>(() => [
},
]);
const artTableRef = ref<{ elTableRef?: { clearSelection: () => void } } | null>(null);
const FaTableRef = ref<{ elTableRef?: { clearSelection: () => void } } | null>(null);
const selectedRows = ref<RoleTable[]>([]);
const selectedIds = computed(() =>
selectedRows.value.map((r) => r.id).filter((id): id is number => id != null && !Number.isNaN(id))
@@ -420,7 +420,7 @@ function deleteRoleRow(id: number) {
const userStore = useUserStore();
await userStore.getUserInfo();
ElMessage.success("删除成功");
artTableRef.value?.elTableRef?.clearSelection();
FaTableRef.value?.elTableRef?.clearSelection();
await refreshRemove();
})
.catch(() => {});
@@ -560,7 +560,7 @@ const paginationBind = computed(() => {
const detailFormData = ref<RoleTable>({} as RoleTable);
const formData = reactive<RoleForm>({
const formData = ref<RoleForm>({
id: undefined,
name: undefined,
order: 1,
@@ -591,7 +591,7 @@ const rules = reactive({
status: [{ required: true, message: "请选择状态", trigger: "blur" }],
});
const dataFormRef = ref<InstanceType<typeof ArtForm> | null>(null);
const dataFormRef = ref<InstanceType<typeof FaForm> | null>(null);
const roleFormRenderKey = ref(0);
const roleDialogFormItems = computed<FormItem[]>(() => [
@@ -744,7 +744,7 @@ function handleBatchDelete() {
const userStore = useUserStore();
await userStore.getUserInfo();
ElMessage.success("删除成功");
artTableRef.value?.elTableRef?.clearSelection();
FaTableRef.value?.elTableRef?.clearSelection();
await refreshRemove();
} finally {
batchDeleting.value = false;