组织架构管理
Showing
5 changed files
with
174 additions
and
1 deletions
src/api/modules/dataBasic.ts
0 → 100644
| 1 | import request from "@/utils/request"; | ||
| 2 | |||
| 3 | /** 获取租户列表(分页) */ | ||
| 4 | export const getTenantSinglePage = (params) => request({ | ||
| 5 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/single-page`, | ||
| 6 | method: 'post', | ||
| 7 | data: params | ||
| 8 | }) | ||
| 9 | |||
| 10 | /** 删除租户 */ | ||
| 11 | export const removeTenant = (data) => request({ | ||
| 12 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/remove`, | ||
| 13 | method: 'delete', | ||
| 14 | data | ||
| 15 | }) | ||
| 16 | |||
| 17 | export const addTenant = (params) => request({ | ||
| 18 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/update`, | ||
| 19 | method: 'post', | ||
| 20 | data: params | ||
| 21 | }) | ||
| 22 | |||
| 23 | export const updateTenant = (params) => request({ | ||
| 24 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/update`, | ||
| 25 | method: 'put', | ||
| 26 | data: params | ||
| 27 | }) | ||
| 28 | |||
| 29 | /** 更新租户状态 */ | ||
| 30 | export const updateTenantState = (guid, state: string = 'Y') => request({ | ||
| 31 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/update-state?tenantGuid=${guid}&state=${state}`, | ||
| 32 | method: 'get' | ||
| 33 | }) | ||
| 34 | |||
| 35 | /** 获取会员进度列表 */ | ||
| 36 | export const getMemberGressList = (params) => request({ | ||
| 37 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/pending-task/page-list`, | ||
| 38 | method: 'post', | ||
| 39 | data: params | ||
| 40 | }) | ||
| 41 | |||
| 42 | /** 获取任务执行日志 */ | ||
| 43 | export const getTaskExecutionLog = (guid) => request({ | ||
| 44 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/pending-task/task-info?guid=${guid}`, | ||
| 45 | method: 'get' | ||
| 46 | }) | ||
| 47 | |||
| 48 | /** 任务重启 */ | ||
| 49 | export const getTaskRestart = (guid) => request({ | ||
| 50 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/pending-task/restart?guid=${guid}`, | ||
| 51 | method: 'get' | ||
| 52 | }) | ||
| 53 | |||
| 54 | /** | ||
| 55 | * 获取部门tree列表 | ||
| 56 | * @param param | ||
| 57 | * @returns | ||
| 58 | */ | ||
| 59 | export const getOrganisationTreeList = (params) => request({ | ||
| 60 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/organisation/get-tree-list`, | ||
| 61 | method: 'post', | ||
| 62 | data: params | ||
| 63 | }) | ||
| 64 | |||
| 65 | export const removeOrganisation = (guids) => request({ | ||
| 66 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/organisation/removeListByGuids`, | ||
| 67 | method: 'delete', | ||
| 68 | data: guids | ||
| 69 | }) | ||
| 70 | |||
| 71 | |||
| 72 | /** | ||
| 73 | * 修改部门关系 | ||
| 74 | * @param param | ||
| 75 | * @returns | ||
| 76 | */ | ||
| 77 | export const updateOrganisation= (params) => request({ | ||
| 78 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/organisation/update`, | ||
| 79 | method: 'put', | ||
| 80 | data: params | ||
| 81 | }); | ||
| 82 | |||
| 83 | /** | ||
| 84 | * 新增部门 | ||
| 85 | * @param param | ||
| 86 | * @returns | ||
| 87 | */ | ||
| 88 | export const addOrganisation = (params) => request({ | ||
| 89 | url: `${import.meta.env.VITE_APP_PERSONAL_URL}/organisation/save`, | ||
| 90 | method: 'post', | ||
| 91 | data: params | ||
| 92 | }); | ||
| 93 |
| ... | @@ -330,6 +330,53 @@ export const useValidator = () => { | ... | @@ -330,6 +330,53 @@ export const useValidator = () => { |
| 330 | }; | 330 | }; |
| 331 | }; | 331 | }; |
| 332 | 332 | ||
| 333 | /** | ||
| 334 | * 中文名字限制校验(表单验证函数) | ||
| 335 | * @param {*} message 错误提示 | ||
| 336 | * @param {*} minChineseCount 最小中文长度 | ||
| 337 | */ | ||
| 338 | const minChineseCount = (message?, minChineseCount = 2) => { | ||
| 339 | const chinesePattern = new RegExp(`^[\u4e00-\u9fa5]{${minChineseCount},}$`); | ||
| 340 | return { | ||
| 341 | validator: (_, val, callback) => { | ||
| 342 | let trimmedInput = val ? val.replace(/\s+/g, '') : ''; | ||
| 343 | if (!chinesePattern.test(trimmedInput) && val) { | ||
| 344 | callback(new Error(message || `输入必须包含至少${minChineseCount}个中文字符!`)) | ||
| 345 | } else { | ||
| 346 | callback() | ||
| 347 | } | ||
| 348 | }, | ||
| 349 | trigger: 'blur' | ||
| 350 | } | ||
| 351 | } | ||
| 352 | |||
| 353 | const email = (message?: string): FormItemRule => { | ||
| 354 | return { | ||
| 355 | validator: (_, val, callback) => { | ||
| 356 | if (val && !/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(val)) { | ||
| 357 | callback(new Error(message || '邮箱格式不正确!')) | ||
| 358 | } else { | ||
| 359 | callback() | ||
| 360 | } | ||
| 361 | }, | ||
| 362 | trigger: 'blur' | ||
| 363 | } | ||
| 364 | } | ||
| 365 | |||
| 366 | const mobileNumber = (message?: string): FormItemRule => { | ||
| 367 | return { | ||
| 368 | validator: (_, val, callback) => { | ||
| 369 | if (val && !/^1[3-9]\d{9}$/.test(val)) { | ||
| 370 | callback(new Error(message || '手机号码格式不正确!')) | ||
| 371 | } else { | ||
| 372 | callback() | ||
| 373 | } | ||
| 374 | }, | ||
| 375 | trigger: 'blur' | ||
| 376 | } | ||
| 377 | } | ||
| 378 | |||
| 379 | |||
| 333 | return { | 380 | return { |
| 334 | required, | 381 | required, |
| 335 | regexpValidate, | 382 | regexpValidate, |
| ... | @@ -343,6 +390,9 @@ export const useValidator = () => { | ... | @@ -343,6 +390,9 @@ export const useValidator = () => { |
| 343 | isUSCCCode, | 390 | isUSCCCode, |
| 344 | idCode, | 391 | idCode, |
| 345 | validateIPList, | 392 | validateIPList, |
| 346 | validateDomainList | 393 | validateDomainList, |
| 394 | minChineseCount, | ||
| 395 | email, | ||
| 396 | mobileNumber | ||
| 347 | } | 397 | } |
| 348 | } | 398 | } | ... | ... |
src/router/modules/dataBasic.ts
0 → 100644
| 1 | import type { RouteRecordRaw } from 'vue-router' | ||
| 2 | function Layout() { | ||
| 3 | return import('@/layouts/index.vue') | ||
| 4 | } | ||
| 5 | const routes: RouteRecordRaw[] = [ | ||
| 6 | { | ||
| 7 | path: '/data-basic/department-manage', | ||
| 8 | component: Layout, | ||
| 9 | meta: { | ||
| 10 | title: '组织架构管理', | ||
| 11 | icon: 'sidebar-videos', | ||
| 12 | }, | ||
| 13 | children: [{ | ||
| 14 | path: '', | ||
| 15 | name: 'departmentInfoList', | ||
| 16 | component: () => import('@/views/data_basic/departmentInfoList.vue'), | ||
| 17 | meta: { | ||
| 18 | title: '组织架构管理', | ||
| 19 | sidebar: false, | ||
| 20 | breadcrumb: false, | ||
| 21 | cache: true | ||
| 22 | }, | ||
| 23 | }] | ||
| 24 | }, | ||
| 25 | ] | ||
| 26 | |||
| 27 | |||
| 28 | export default routes | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -8,6 +8,7 @@ import DataFacilitator from './modules/dataFacilitator'; | ... | @@ -8,6 +8,7 @@ import DataFacilitator from './modules/dataFacilitator'; |
| 8 | import HomeIndex from './modules/homeIndex'; | 8 | import HomeIndex from './modules/homeIndex'; |
| 9 | import DataDelivery from './modules/dataDelivery'; | 9 | import DataDelivery from './modules/dataDelivery'; |
| 10 | import DataAnonymization from './modules/dataAnonymization'; | 10 | import DataAnonymization from './modules/dataAnonymization'; |
| 11 | import DataBasic from './modules/dataBasic'; | ||
| 11 | 12 | ||
| 12 | import useSettingsStore from '@/store/modules/settings' | 13 | import useSettingsStore from '@/store/modules/settings' |
| 13 | 14 | ||
| ... | @@ -101,6 +102,7 @@ const asyncRoutes: RouteRecordRaw[] = [ | ... | @@ -101,6 +102,7 @@ const asyncRoutes: RouteRecordRaw[] = [ |
| 101 | ...HomeIndex, | 102 | ...HomeIndex, |
| 102 | ...DataDelivery, | 103 | ...DataDelivery, |
| 103 | ...DataAnonymization, | 104 | ...DataAnonymization, |
| 105 | ...DataBasic, | ||
| 104 | // ...DataAssetRegistry, | 106 | // ...DataAssetRegistry, |
| 105 | ] | 107 | ] |
| 106 | 108 | ... | ... |
src/views/data_basic/departmentInfoList.vue
0 → 100644
This diff is collapsed.
Click to expand it.
-
Please register or sign in to post a comment