From 38213534d011f898ec99a97719b4637c1c12cd6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E6=B0=B8=E6=98=A5?= Date: Fri, 5 Dec 2025 13:36:39 +0800 Subject: [PATCH] =?UTF-8?q?feat-wip(components):=20=E8=A1=8C=E6=94=BF?= =?UTF-8?q?=E5=8C=BA=E5=88=92=E7=9B=B8=E5=85=B3=E9=A1=B5=E9=9D=A2=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.prod | 2 +- src/locales/langs/en-us.ts | 7 +- src/locales/langs/zh-cn.ts | 7 +- src/service/api/index.ts | 1 + src/service/api/sys/rbac/region.ts | 45 +++++++ src/typings/api/common.d.ts | 8 +- src/typings/api/sys/core.d.ts | 2 +- src/typings/api/sys/rbac.d.ts | 34 +++++ src/typings/app.d.ts | 5 + src/typings/components.d.ts | 2 - src/views/sys/rbac/region/index.vue | 116 +++++++++++++++++- .../sys/rbac/region/modules/region-search.vue | 65 ++++++++++ 12 files changed, 280 insertions(+), 14 deletions(-) create mode 100644 src/service/api/sys/rbac/region.ts create mode 100644 src/typings/api/sys/rbac.d.ts create mode 100644 src/views/sys/rbac/region/modules/region-search.vue diff --git a/.env.prod b/.env.prod index f5677640..4d275f05 100644 --- a/.env.prod +++ b/.env.prod @@ -2,6 +2,6 @@ VITE_SERVICE_BASE_URL=https://mock.apifox.cn/m1/3109515-0-default # other backend service base url, prod environment -VITE_OTHER_SERVICE_BASE_URL= `{ +VITE_OTHER_SERVICE_BASE_URL=`{ "demo": "http://localhost:9529" }` diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index 33a8c83d..47b38482 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -344,7 +344,12 @@ const local: App.I18n.Schema = { }, rbac: { region: { - title: 'Region' + title: 'Region', + fields: { + name: 'Name', + code: 'Code', + sort: 'Sort' + } } } } diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index 603fcea2..bf208529 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -340,7 +340,12 @@ const local: App.I18n.Schema = { }, rbac: { region: { - title: '行政区划' + title: '行政区划', + fields: { + name: '名称', + code: '代码', + sort: '排序' + } } } } diff --git a/src/service/api/index.ts b/src/service/api/index.ts index eade4ef9..f89b20a0 100644 --- a/src/service/api/index.ts +++ b/src/service/api/index.ts @@ -1,3 +1,4 @@ export * from './auth'; export * from './route'; export * from './sys/core/dictionary'; +export * from './sys/rbac/region'; diff --git a/src/service/api/sys/rbac/region.ts b/src/service/api/sys/rbac/region.ts new file mode 100644 index 00000000..6e1d6f13 --- /dev/null +++ b/src/service/api/sys/rbac/region.ts @@ -0,0 +1,45 @@ +import { request } from '../../../request'; + +export function fetchRegionPaginate(pageRequest: Api.Common.PageRequest) { + return request>({ + url: '/region/paginate', + method: 'post', + data: pageRequest + }); +} + +export function fetchRegionInsert(regionDTO: Api.Sys.Rbac.RegionDTO) { + return request({ + url: '/region/insert', + method: 'post', + data: regionDTO + }); +} + +export function fetchRegionUpdate(regionDTO: Api.Sys.Rbac.RegionDTO) { + return request({ + url: '/region/update', + method: 'post', + data: regionDTO + }); +} + +export function fetchRegionDelete(id: string) { + return request({ + url: '/region/delete', + method: 'post', + data: { + id + } + }); +} + +export function fetchRegionDeleteBatch(ids: string[]) { + return request({ + url: '/region/deleteBatch', + method: 'post', + data: { + ids + } + }); +} diff --git a/src/typings/api/common.d.ts b/src/typings/api/common.d.ts index 005c1bba..18503425 100644 --- a/src/typings/api/common.d.ts +++ b/src/typings/api/common.d.ts @@ -5,14 +5,10 @@ */ declare namespace Api { namespace Common { - /** 分页请求 */ - interface PageRequest { + /** 带查询参数的分页请求 */ + interface PageRequest { pageIndex: number; pageSize: number; - } - - /** 带查询参数的分页请求 */ - interface QueryPageRequest extends PageRequest { query: T; } diff --git a/src/typings/api/sys/core.d.ts b/src/typings/api/sys/core.d.ts index 5251fee4..ce547f62 100644 --- a/src/typings/api/sys/core.d.ts +++ b/src/typings/api/sys/core.d.ts @@ -17,7 +17,7 @@ declare namespace Api { code: string | null; type: string | null; } - type DictionaryQueryPageRequest = Api.Common.QueryPageRequest; + type DictionaryQueryPageRequest = Api.Common.PageRequest; interface DictionaryOp { id: string | null; name: string; diff --git a/src/typings/api/sys/rbac.d.ts b/src/typings/api/sys/rbac.d.ts new file mode 100644 index 00000000..259eab4b --- /dev/null +++ b/src/typings/api/sys/rbac.d.ts @@ -0,0 +1,34 @@ +declare namespace Api { + namespace Sys { + namespace Rbac { + // ******************** sys_rbac_region ******************** + interface RegionVO { + id: string; + parentId: string | null; + parentCode: string | null; + rootId: string | null; + rootCode: string | null; + name: string; + code: string; + extCode: string; + sort: number; + description: string; + createTime: string; + updateTime: string; + children: RegionVO[]; + } + interface RegionDTO { + id: string | null; + parentId: string | null; + parentCode: string | null; + rootId: string | null; + rootCode: string | null; + name: string | null; + code: string | null; + extCode: string | null; + sort: number | null; + description: string | null; + } + } + } +} diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts index 3cdee59e..d5172528 100644 --- a/src/typings/app.d.ts +++ b/src/typings/app.d.ts @@ -587,6 +587,11 @@ declare namespace App { rbac: { region: { title: string; + fields: { + name: string; + code: string; + sort: string; + }; }; }; }; diff --git a/src/typings/components.d.ts b/src/typings/components.d.ts index 12e7abd0..fbf95912 100644 --- a/src/typings/components.d.ts +++ b/src/typings/components.d.ts @@ -63,7 +63,6 @@ declare module 'vue' { NFormItemGi: typeof import('naive-ui')['NFormItemGi'] NGi: typeof import('naive-ui')['NGi'] NGrid: typeof import('naive-ui')['NGrid'] - NHr: typeof import('naive-ui')['NHr'] NInput: typeof import('naive-ui')['NInput'] NInputGroup: typeof import('naive-ui')['NInputGroup'] NInputNumber: typeof import('naive-ui')['NInputNumber'] @@ -155,7 +154,6 @@ declare global { const NFormItemGi: typeof import('naive-ui')['NFormItemGi'] const NGi: typeof import('naive-ui')['NGi'] const NGrid: typeof import('naive-ui')['NGrid'] - const NHr: typeof import('naive-ui')['NHr'] const NInput: typeof import('naive-ui')['NInput'] const NInputGroup: typeof import('naive-ui')['NInputGroup'] const NInputNumber: typeof import('naive-ui')['NInputNumber'] diff --git a/src/views/sys/rbac/region/index.vue b/src/views/sys/rbac/region/index.vue index 8136f06f..e6566c87 100644 --- a/src/views/sys/rbac/region/index.vue +++ b/src/views/sys/rbac/region/index.vue @@ -1,15 +1,127 @@ - diff --git a/src/views/sys/rbac/region/modules/region-search.vue b/src/views/sys/rbac/region/modules/region-search.vue new file mode 100644 index 00000000..1936a825 --- /dev/null +++ b/src/views/sys/rbac/region/modules/region-search.vue @@ -0,0 +1,65 @@ + + + + +