optimize: 优化代码质量

This commit is contained in:
xlsea 2025-04-23 16:02:41 +08:00
parent 8b237b3f61
commit d4487dc638
42 changed files with 100 additions and 108 deletions

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import type { TagProps } from 'naive-ui';
import { useAttrs } from 'vue';
import type { TagProps } from 'naive-ui';
import { isNotNull } from '@/utils/common';
defineOptions({

View File

@ -1,7 +1,7 @@
<script setup lang="ts">
import { computed, useAttrs } from 'vue';
import type { ButtonProps, PopoverPlacement } from 'naive-ui';
import { twMerge } from 'tailwind-merge';
import { computed, useAttrs } from 'vue';
defineOptions({
name: 'ButtonIcon',

View File

@ -1,10 +1,10 @@
<script setup lang="tsx">
import { ref, useAttrs } from 'vue';
import { useLoading } from '@sa/hooks';
import type { TreeOption, TreeSelectProps } from 'naive-ui';
import { useLoading } from '@sa/hooks';
import { fetchGetMenuList } from '@/service/api/system';
import SvgIcon from '@/components/custom/svg-icon.vue';
import { handleTree } from '@/utils/common';
import SvgIcon from '@/components/custom/svg-icon.vue';
defineOptions({ name: 'MenuTreeSelect' });

View File

@ -1,7 +1,7 @@
<script setup lang="ts">
import { useLoading } from '@sa/hooks';
import type { SelectProps } from 'naive-ui';
import { ref, useAttrs, watch } from 'vue';
import type { SelectProps } from 'naive-ui';
import { useLoading } from '@sa/hooks';
import { fetchGetPostSelect } from '@/service/api/system';
defineOptions({

View File

@ -1,7 +1,7 @@
<script setup lang="ts">
import { useLoading } from '@sa/hooks';
import type { SelectProps } from 'naive-ui';
import { ref, useAttrs } from 'vue';
import type { SelectProps } from 'naive-ui';
import { useLoading } from '@sa/hooks';
import { fetchGetRoleSelect } from '@/service/api/system';
defineOptions({

View File

@ -1,6 +1,6 @@
import { errorCodeRecord } from '@/constants/common';
import { localStg } from '@/utils/storage';
import { getServiceBaseURL } from '@/utils/service';
import { errorCodeRecord } from '@/constants/common';
export function useDownload() {
const isHttpProxy = import.meta.env.DEV && import.meta.env.VITE_HTTP_PROXY === 'Y';

View File

@ -3,8 +3,8 @@ import type { Ref } from 'vue';
import { jsonClone } from '@sa/utils';
import { useBoolean, useHookTable } from '@sa/hooks';
import { useAppStore } from '@/store/modules/app';
import { $t } from '@/locales';
import { handleTree } from '@/utils/common';
import { $t } from '@/locales';
type TableData = NaiveUI.TableData;
type GetTableData<A extends NaiveUI.TreeTableApiFn> = NaiveUI.GetTreeTableData<A>;

View File

@ -1,36 +1,36 @@
import { request } from '@/service/request';
/** 获取客户端列表 */
export function fetchGetClientList (params?: Api.System.ClientSearchParams) {
return request<Api.System.ClientList>({
url: '/system/client/list',
method: 'get',
params
});
export function fetchGetClientList(params?: Api.System.ClientSearchParams) {
return request<Api.System.ClientList>({
url: '/system/client/list',
method: 'get',
params
});
}
/** 新增客户端 */
export function fetchCreateClient (data: Api.System.ClientOperateParams) {
return request<boolean>({
url: '/system/client',
method: 'post',
data
});
export function fetchCreateClient(data: Api.System.ClientOperateParams) {
return request<boolean>({
url: '/system/client',
method: 'post',
data
});
}
/** 修改客户端 */
export function fetchUpdateClient (data: Api.System.ClientOperateParams) {
return request<boolean>({
url: '/system/client',
method: 'put',
data
});
export function fetchUpdateClient(data: Api.System.ClientOperateParams) {
return request<boolean>({
url: '/system/client',
method: 'put',
data
});
}
/** 批量删除客户端 */
export function fetchBatchDeleteClient (ids: CommonType.IdType[]) {
return request<boolean>({
url: `/system/client/${ids.join(',')}`,
method: 'delete'
});
export function fetchBatchDeleteClient(ids: CommonType.IdType[]) {
return request<boolean>({
url: `/system/client/${ids.join(',')}`,
method: 'delete'
});
}

View File

@ -1,5 +1,5 @@
import { defineStore } from 'pinia';
import { ref } from 'vue';
import { defineStore } from 'pinia';
export const useDictStore = defineStore('dict', () => {
const dictData = ref<{ [key: string]: Api.System.DictData[] }>({});

View File

@ -1,5 +1,5 @@
import { defineStore } from 'pinia';
import { reactive } from 'vue';
import { defineStore } from 'pinia';
interface NoticeItem {
title?: string;

View File

@ -1,5 +1,5 @@
import { useEventSource } from '@vueuse/core';
import { watch } from 'vue';
import { useEventSource } from '@vueuse/core';
import useNoticeStore from '@/store/modules/notice';
import { localStg } from './storage';

View File

@ -2,13 +2,13 @@
import { computed, reactive, ref } from 'vue';
import type { SelectOption } from 'naive-ui';
import { useLoading } from '@sa/hooks';
import { $t } from '@/locales';
import { loginModuleRecord } from '@/constants/app';
import { fetchCaptchaCode, fetchTenantList } from '@/service/api';
import { useAuthStore } from '@/store/modules/auth';
import { useRouterPush } from '@/hooks/common/router';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { useAuthStore } from '@/store/modules/auth';
import { fetchCaptchaCode, fetchTenantList } from '@/service/api';
import { localStg } from '@/utils/storage';
import { $t } from '@/locales';
defineOptions({
name: 'PwdLogin'

View File

@ -1,12 +1,12 @@
<script setup lang="tsx">
import { NButton, NPopconfirm } from 'naive-ui';
import { fetchBatchDeleteClient, fetchGetClientList } from '@/service/api/system/client';
import { $t } from '@/locales';
import { useAuth } from '@/hooks/business/auth';
import { useAppStore } from '@/store/modules/app';
import { useAuth } from '@/hooks/business/auth';
import { useDownload } from '@/hooks/business/download';
import { useTable, useTableOperate } from '@/hooks/common/table';
import { useDict } from '@/hooks/business/dict';
import { $t } from '@/locales';
import DictTag from '@/components/custom/dict-tag.vue';
import ClientOperateDrawer from './modules/client-operate-drawer.vue';
import ClientSearch from './modules/client-search.vue';

View File

@ -1,8 +1,8 @@
<script setup lang="ts">
import { computed, reactive, watch } from 'vue';
import { fetchCreateClient, fetchUpdateClient } from '@/service/api/system/client';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateClient, fetchUpdateClient } from '@/service/api/system/client';
defineOptions({
name: 'ClientOperateDrawer'
});

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
defineOptions({
name: 'ClientSearch'
});

View File

@ -1,12 +1,12 @@
<script setup lang="tsx">
import { NButton, NPopconfirm } from 'naive-ui';
import { fetchBatchDeleteConfig, fetchGetConfigList, fetchRefreshCache } from '@/service/api/system/config';
import { $t } from '@/locales';
import { useAuth } from '@/hooks/business/auth';
import { useAppStore } from '@/store/modules/app';
import { useAuth } from '@/hooks/business/auth';
import { useDownload } from '@/hooks/business/download';
import { useTable, useTableOperate } from '@/hooks/common/table';
import { useDict } from '@/hooks/business/dict';
import { $t } from '@/locales';
import DictTag from '@/components/custom/dict-tag.vue';
import ConfigOperateDrawer from './modules/config-operate-drawer.vue';
import ConfigSearch from './modules/config-search.vue';

View File

@ -1,8 +1,8 @@
<script setup lang="ts">
import { computed, reactive, watch } from 'vue';
import { fetchCreateConfig, fetchUpdateConfig } from '@/service/api/system/config';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateConfig, fetchUpdateConfig } from '@/service/api/system/config';
defineOptions({
name: 'ConfigOperateDrawer'

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
defineOptions({
name: 'ConfigSearch'

View File

@ -3,12 +3,12 @@ import { NButton, NPopconfirm } from 'naive-ui';
import { jsonClone } from '@sa/utils';
import type { TableDataWithIndex } from '@sa/hooks';
import { fetchBatchDeleteDept, fetchGetDeptList } from '@/service/api/system/dept';
import { $t } from '@/locales';
import { useAuth } from '@/hooks/business/auth';
import { useAppStore } from '@/store/modules/app';
import { useAuth } from '@/hooks/business/auth';
import { useTreeTable, useTreeTableOperate } from '@/hooks/common/tree-table';
import DictTag from '@/components/custom/dict-tag.vue';
import { useDict } from '@/hooks/business/dict';
import DictTag from '@/components/custom/dict-tag.vue';
import { $t } from '@/locales';
import DeptOperateDrawer from './modules/dept-operate-drawer.vue';
import DeptSearch from './modules/dept-search.vue';

View File

@ -2,11 +2,11 @@
import { computed, reactive, ref, watch } from 'vue';
import { NInputNumber } from 'naive-ui';
import { useLoading } from '@sa/hooks';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateDept, fetchGetDeptList, fetchGetExcludeDeptList, fetchUpdateDept } from '@/service/api/system/dept';
import { fetchGetDeptUserList } from '@/service/api/system/user';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { handleTree } from '@/utils/common';
import { $t } from '@/locales';
defineOptions({
name: 'DeptOperateDrawer'

View File

@ -1,7 +1,7 @@
<script setup lang="ts">
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { useDict } from '@/hooks/business/dict';
import { $t } from '@/locales';
defineOptions({
name: 'DeptSearch'
});

View File

@ -1,16 +1,15 @@
<script setup lang="tsx">
import { NButton, NPopconfirm } from 'naive-ui';
import { fetchBatchDeleteDictData, fetchGetDictDataList } from '@/service/api/system/dict-data';
import { $t } from '@/locales';
import { useAuth } from '@/hooks/business/auth';
import { useAppStore } from '@/store/modules/app';
import { useAuth } from '@/hooks/business/auth';
import { useDownload } from '@/hooks/business/download';
import { useTable, useTableOperate } from '@/hooks/common/table';
import { $t } from '@/locales';
import DictTag from '@/components/custom/dict-tag.vue';
import { emitter } from '../mitt';
import DictDataOperateDrawer from './modules/dict-data-operate-drawer.vue';
import DictDataSearch from './modules/dict-data-search.vue';
import { ref } from 'vue';
defineOptions({
name: 'DictDataList'
});
@ -174,14 +173,11 @@ emitter.on('rowClick', async (value: string) => {
await getDataByPage();
});
/**
* 自定义重置方法重置dictLabel不重置dictType
*/
/** 自定义重置方法重置dictLabel不重置dictType */
async function handleReset() {
searchParams.dictLabel = null;
await getDataByPage();
}
</script>
<template>
@ -201,6 +197,7 @@ async function handleReset() {
@delete="handleBatchDelete"
@export="handleExport"
@refresh="getData"
@reset="resetSearchParams"
/>
</template>
<NDataTable

View File

@ -1,9 +1,9 @@
<script setup lang="ts">
import { computed, h, reactive, watch } from 'vue';
import { NTag } from 'naive-ui';
import { fetchCreateDictData, fetchUpdateDictData } from '@/service/api/system/dict-data';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateDictData, fetchUpdateDictData } from '@/service/api/system/dict-data';
import { NTag } from 'naive-ui';
defineOptions({
name: 'DictDataOperateDrawer'
@ -51,7 +51,7 @@ const listClassOptions = [
{ label: 'warning', value: 'warning' },
{ label: 'error', value: 'error' },
{ label: 'default', value: 'default' }
]
];
function createDefaultModel(): Model {
return {
@ -134,13 +134,9 @@ watch(visible, () => {
});
function renderTagLabel(option: { label: string; value: string }) {
return h(
'div',
{ class: 'flex items-center gap-2' },
[
h(NTag, {type: option.value as any,}, { default: () => option.label })
]
);
return h('div', { class: 'flex items-center gap-2' }, [
h(NTag, { type: option.value as any }, { default: () => option.label })
]);
}
</script>

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
defineOptions({
name: 'DictDataSearch'

View File

@ -1,6 +1,5 @@
<script setup lang="ts">
import { onUnmounted } from 'vue';
import DictTypeList from './type/index.vue';
import DictDataList from './data/index.vue';
import { emitter } from './mitt';
@ -9,7 +8,7 @@ onUnmounted(() => emitter.off('rowClick'));
</script>
<template>
<div class="h-full flex flex-col md:flex-row gap-16px">
<div class="h-full flex flex-col gap-16px md:flex-row">
<DictTypeList class="w-full md:w-1/2" />
<DictDataList class="w-full md:w-1/2" />
</div>

View File

@ -1,13 +1,13 @@
<script setup lang="tsx">
import { NButton, NPopconfirm } from 'naive-ui';
import { ref } from 'vue';
import { NButton, NPopconfirm } from 'naive-ui';
import type { TableDataWithIndex } from '@sa/hooks';
import { fetchBatchDeleteDictType, fetchGetDictTypeList, fetchRefreshCache } from '@/service/api/system/dict';
import { $t } from '@/locales';
import { useAuth } from '@/hooks/business/auth';
import { useAppStore } from '@/store/modules/app';
import { useAuth } from '@/hooks/business/auth';
import { useDownload } from '@/hooks/business/download';
import { useTable, useTableOperate } from '@/hooks/common/table';
import { $t } from '@/locales';
import { emitter } from '../mitt';
import DictTypeOperateDrawer from './modules/dict-type-operate-drawer.vue';
import DictTypeSearch from './modules/dict-type-search.vue';

View File

@ -1,8 +1,8 @@
<script setup lang="ts">
import { computed, reactive, watch } from 'vue';
import { fetchCreateDictType, fetchUpdateDictType } from '@/service/api/system/dict';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateDictType, fetchUpdateDictType } from '@/service/api/system/dict';
defineOptions({
name: 'DictTypeOperateDrawer'

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
defineOptions({
name: 'DictTypeSearch'

View File

@ -1,17 +1,17 @@
<script setup lang="tsx">
import { ref } from 'vue';
import { useBoolean, useLoading } from '@sa/hooks';
import type { DataTableColumns, TreeInst, TreeOption } from 'naive-ui';
import { NButton, NIcon, NInput, NPopconfirm, NTooltip } from 'naive-ui';
import { useBoolean, useLoading } from '@sa/hooks';
import { menuIsFrameRecord, menuTypeRecord } from '@/constants/business';
import { fetchDeleteMenu, fetchGetMenuList } from '@/service/api/system';
import { useAppStore } from '@/store/modules/app';
import { menuIsFrameRecord, menuTypeRecord } from '@/constants/business';
import { $t } from '@/locales';
import { useDict } from '@/hooks/business/dict';
import { handleTree } from '@/utils/common';
import { $t } from '@/locales';
import SvgIcon from '@/components/custom/svg-icon.vue';
import DictTag from '@/components/custom/dict-tag.vue';
import ButtonIcon from '@/components/custom/button-icon.vue';
import { handleTree } from '@/utils/common';
import MenuOperateDrawer from './modules/menu-operate-drawer.vue';
useDict('sys_show_hide');
useDict('sys_normal_disable');

View File

@ -1,13 +1,13 @@
<script setup lang="tsx">
import { computed, reactive, ref, watch } from 'vue';
import type { SelectOption } from 'naive-ui';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateMenu, fetchUpdateMenu } from '@/service/api/system';
import { menuIconTypeOptions, menuIsFrameOptions, menuTypeOptions } from '@/constants/business';
import SvgIcon from '@/components/custom/svg-icon.vue';
import { fetchCreateMenu, fetchUpdateMenu } from '@/service/api/system';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { getLocalMenuIcons } from '@/utils/icon';
import { humpToLine, isNotNull } from '@/utils/common';
import { $t } from '@/locales';
import SvgIcon from '@/components/custom/svg-icon.vue';
defineOptions({
name: 'MenuOperateDrawer'

View File

@ -1,12 +1,12 @@
<script setup lang="tsx">
import { NButton, NPopconfirm } from 'naive-ui';
import { $t } from '@/locales';
import { fetchBatchDeleteNotice, fetchGetNoticeList } from '@/service/api/system/notice';
import { useAuth } from '@/hooks/business/auth';
import { useAppStore } from '@/store/modules/app';
import { useAuth } from '@/hooks/business/auth';
import { useDownload } from '@/hooks/business/download';
import { useTable, useTableOperate } from '@/hooks/common/table';
import { useDict } from '@/hooks/business/dict';
import { $t } from '@/locales';
import DictTag from '@/components/custom/dict-tag.vue';
import NoticeOperateDrawer from './modules/notice-operate-drawer.vue';
import NoticeSearch from './modules/notice-search.vue';

View File

@ -1,8 +1,8 @@
<script setup lang="ts">
import { computed, reactive, watch } from 'vue';
import { fetchCreateNotice, fetchUpdateNotice } from '@/service/api/system/notice';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateNotice, fetchUpdateNotice } from '@/service/api/system/notice';
defineOptions({
name: 'NoticeOperateDrawer'
});

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
defineOptions({
name: 'NoticeSearch'
});

View File

@ -1,16 +1,16 @@
<script setup lang="tsx">
import { ref } from 'vue';
import { NButton, NPopconfirm } from 'naive-ui';
import { useLoading } from '@sa/hooks';
import { ref } from 'vue';
import { fetchBatchDeletePost, fetchGetPostList } from '@/service/api/system/post';
import { fetchGetDeptTree } from '@/service/api/system';
import { $t } from '@/locales';
import { useAuth } from '@/hooks/business/auth';
import { useAppStore } from '@/store/modules/app';
import { useAuth } from '@/hooks/business/auth';
import { useDownload } from '@/hooks/business/download';
import { useTable, useTableOperate } from '@/hooks/common/table';
import DictTag from '@/components/custom/dict-tag.vue';
import { useDict } from '@/hooks/business/dict';
import DictTag from '@/components/custom/dict-tag.vue';
import { $t } from '@/locales';
import PostOperateDrawer from './modules/post-operate-drawer.vue';
import PostSearch from './modules/post-search.vue';

View File

@ -1,9 +1,9 @@
<script setup lang="ts">
import { computed, reactive, watch } from 'vue';
import { useLoading } from '@sa/hooks';
import { fetchCreatePost, fetchUpdatePost } from '@/service/api/system/post';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreatePost, fetchUpdatePost } from '@/service/api/system/post';
defineOptions({
name: 'PostOperateDrawer'
});

View File

@ -1,7 +1,7 @@
<script setup lang="ts">
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { useDict } from '@/hooks/business/dict';
import { $t } from '@/locales';
defineOptions({
name: 'PostSearch'
});

View File

@ -1,15 +1,15 @@
<script setup lang="tsx">
import { NButton, NPopconfirm } from 'naive-ui';
import { computed } from 'vue';
import { NButton, NPopconfirm } from 'naive-ui';
import { fetchBatchDeleteTenant, fetchGetTenantList, fetchSyncTenantDict } from '@/service/api/system/tenant';
import { $t } from '@/locales';
import { useAuth } from '@/hooks/business/auth';
import { useAppStore } from '@/store/modules/app';
import { useAuthStore } from '@/store/modules/auth';
import { useAuth } from '@/hooks/business/auth';
import { useTable, useTableOperate } from '@/hooks/common/table';
import DictTag from '@/components/custom/dict-tag.vue';
import { useDownload } from '@/hooks/business/download';
import { useDict } from '@/hooks/business/dict';
import DictTag from '@/components/custom/dict-tag.vue';
import { $t } from '@/locales';
import TenantOperateDrawer from './modules/tenant-operate-drawer.vue';
import TenantSearch from './modules/tenant-search.vue';

View File

@ -1,10 +1,10 @@
<script setup lang="ts">
import { computed, reactive, ref, watch } from 'vue';
import { useLoading } from '@sa/hooks';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateTenant, fetchUpdateTenant } from '@/service/api/system/tenant';
import { fetchGetTenantPackageSelectList } from '@/service/api/system/tenant-package';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
defineOptions({
name: 'TenantOperateDrawer'

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
defineOptions({
name: 'TenantSearch'

View File

@ -1,13 +1,13 @@
<script setup lang="tsx">
import { NButton, NPopconfirm } from 'naive-ui';
import { ref } from 'vue';
import { NButton, NPopconfirm } from 'naive-ui';
import { useLoading } from '@sa/hooks';
import { fetchBatchDeleteUser, fetchGetDeptTree, fetchGetUserList } from '@/service/api/system';
import { $t } from '@/locales';
import { useAppStore } from '@/store/modules/app';
import { useTable, useTableOperate } from '@/hooks/common/table';
import DictTag from '@/components/custom/dict-tag.vue';
import { useDict } from '@/hooks/business/dict';
import DictTag from '@/components/custom/dict-tag.vue';
import { $t } from '@/locales';
import UserOperateDrawer from './modules/user-operate-drawer.vue';
import UserSearch from './modules/user-search.vue';

View File

@ -1,9 +1,9 @@
<script setup lang="ts">
import { computed, reactive, watch } from 'vue';
import { useLoading } from '@sa/hooks';
import { fetchCreateUser, fetchGetUserInfo, fetchUpdateUser } from '@/service/api/system';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateUser, fetchGetUserInfo, fetchUpdateUser } from '@/service/api/system';
defineOptions({
name: 'UserOperateDrawer'

View File

@ -1,7 +1,7 @@
<script setup lang="ts">
import { ref } from 'vue';
import { $t } from '@/locales';
import { useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
defineOptions({
name: 'UserSearch'